import classnames, { type ArgumentArray } from 'classnames';

/**
 * 返回一个 className 生成函数，添加命名空间，处理 css 模块
 * @param module - string 模块名
 * @param prefix - string 前缀，默认值是 'sun-ui'
 * * */
export const getClassNameGenerator =
  (module: string, prefix = 'sun-ui') =>
  (...args: ArgumentArray) => {
    const className = classnames(...args);
    if (!className) return '';

    const ns = `${prefix}-${module}`;
    const list: string[] = className
      .split(' ')
      .map((c) => (c === '_' ? ns : `${ns}-${c}`));

    return list.join(' ');
  };
